Technical Q&A QA1296
Downloading through a proxy server in Mac OS X


Q: Mac OS X ではプロキシサーバ経由でファイルをダウンロードできるのでしょうか。

A: できます。ただし、いくつかの制限があります。URL Access および CFNetwork は、ともにプロキシサーバをサポートしています。URL Access は、ダウンロード時に「ネットワーク」環境設定パネルで設定されているプロキシ設定を自動的に使用します。ただし、URL Access は、認証を必要とするプロキシサーバをサポートせず、バグ(r. 3197852)のため、プロキシサーバ経由の HTTPS もサポートしません。

CFNetwork は、「ネットワーク」環境設定パネルのプロキシ設定を自動的に使用しないので、手動でプロキシ設定を転送処理に適用する必要があります。下記の抜粋コードは、その方法を示します。



リスト 1. HTTP ストリームへの「ネットワーク」環境設定パネルのプロキシ情報の追加

CFDictionaryRef proxyDict = SCDynamicStoreCopyProxies(NULL);
CFReadStreamSetProperty(readStream, kCFStreamPropertyHTTPProxy, proxyDict);


URL Access とは異なり、CFNetwork はプロキシサーバ認証をサポートしています。Mac OS X 10.2.x 以前、CFNetwork はプロキシサーバ経由の HTTPS をサポートしていませんでしたが、この機能は Mac OS X 10.3 以降でサポートされるようになりました。

Mac OS X 10.3 では Foundation URL Loading System も新たに導入され、リソースへの HTTP、HTTPS、FTP、ファイル URL などを使用したアクセスをサポートしています。この Objective-C API は、CFNetwork に基づいて実装されているため、認証プロキシサーバおよびプロキシサーバ経由 HTTPS の両方をサポートします。


[2003 年 10 月 29 日]